# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.1046.1.337 -> 1.1046.1.338 # drivers/acpi/pci_irq.c 1.19 -> 1.20 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 03/07/14 ak@muc.de 1.1046.516.2 # [NET]: Turn softnet_data into per-cpu data. # -------------------------------------------- # 03/07/14 chas@cmf.nrl.navy.mil 1.1046.516.3 # [ATM]: Cleanup pppoatm_ioctl_hook. # -------------------------------------------- # 03/07/14 chas@cmf.nrl.navy.mil 1.1046.516.4 # [ATM]: Cleanup br2684_ioctl_hook. # -------------------------------------------- # 03/07/14 kunihiro@ipinfusion.com 1.1046.516.5 # [IPSEC/IPV6]: Add missing email address to my copyrights. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.1 # [CPUFREQ] update Documentation # - the path to sysfs changed # - add the cpufreq_driver.owner requirement # - clarify another paragraph # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.2 # [CPUFREQ] Fix compilation of speedstep-ich.c if SPEEDSTEP_DEBUG is set. # From Dominik # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.3 # [CPUFREQ] Longrun validate can fail. # From Dominik # # Instead of trying to guess what the user intended, fail if the user # requests a setting which is not supported by the longrun driver. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.4 # [CPUFREQ] Locking fixes [1/11] # First part in a series of patches from Dominik which clean up the locking in # cpufreq. It sort of worked, but is full of races. But to keep it # working at least as well it works now, add a new spinlock # cpufreq_driver_lock which will be what cpufreq_driver_sem intended to # be -- but it can indeed be a spinlock instead of a semaphore. # # This driver adds proper protection for struct cpufreq_driver # *cpufreq_driver which can only go away during cpufreq_unregister -- # block this by increasing the driver's module reference count. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.5 # [CPUFREQ] Locking fixes [2/11] # As the per-CPU initialization can fail, we need to deal with this # situation in cpufreq_remove_dev as the sysdev core doesn't (yet) do # this for us. The solution: add a "struct cpufreq_policy # *cpufreq_cpu_data[NR_CPUS]" array, which has a NULL pointer for each # CPU not managed by cpufreq (yet) and a pointer to the per-CPU data # for each CPU managed by cpufreq. It is locked by cpufreq_driver_lock. # # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.6 # [CPUFREQ] Fix locking [3/11] # Change the return value of cpufreq_cpu_get from a nondescriptent int # to struct cpufreq_policy*. This will allow for cleaner code - and # later it will be expected that anyone who grabs a reference by calling # cpufreq_cpu_get must return this struct cpufreq_policy* to # cpufreq_cpu_put. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.7 # [CPUFREQ] Fix locking [4/11] # Make cpufreq_remove_dev a bit more readable. Also, assure that the # GOV_STOP and the cpufreq_driver->exit() call are indeed the last calls # done. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.8 # [CPUFREQ] Fix locking [5/11] # Make cpufreq_set_policy a bit more readable by storing the CPU's # cpufreq_policy into a pointer. # # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.9 # [CPUFREQ] Fix locking [6/11] # Change the function parameter of cpufreq_cpu_put to struct # cpufreq_policy *. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.10 # [CPUFREQ] Fix locking [7/11] # Finally implement the two different cpufreq_driver_target callbacks -- # the one called while the per-CPU lock is held, the other while # not. While we're at it, clean up cpufreq_governor. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.11 # [CPUFREQ] Fix locking [8/11] # Split up cpufreq_governor into a locking and non-locking variant. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.12 # [CPUFREQ] Fix locking [9/11] # Use the per-CPU policy->lock to lock the per-CPU "policy" data. Also, # use it to serialize the setting of new frequency policies on each CPU. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.13 # [CPUFREQ] Fix locking [10/11] # Remove the final instances of the now-deprecated # cpufreq_driver_sem. Also, the previous "one-frequency change at one # moment" limitation is gone. If it's needed by the cpufreq driver, it # should be implemented in its cpufreq_driver->{target,setpolicy} # callback. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.14 # [CPUFREQ] Fix locking [11/11] # Implement per-CPU memory allocation. Is a bit cleaner than the # previous "once and for all" approach. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.517.15 # [CPUFREQ] speedstep_ICH new frequency notification fix. # Correct the notification of the cpufreq core of the new frequency being # set in ich's speedstep_set, and print accurate debug info in this function. # (both bugs noted by Valdis Kletnieks, thanks!) # -------------------------------------------- # 03/07/15 davej@tetrachloride.(none) 1.1046.518.1 # Merge tetrachloride.(none):/mnt/raid/src/kernel/2.5/trees/bk-linus # into tetrachloride.(none):/mnt/raid/src/kernel/2.5/trees/cpufreq # -------------------------------------------- # 03/07/14 willy@debian.org 1.1046.515.2 # [PATCH] ia64: use has_8259 in acpi_register_irq() # # acpi_madt is marked as __initdata, so an attempt to use # acpi_register_irq() after we discarded init sections would cause us to # dereference a random location. Everywhere else uses has_8259 anyway. # -------------------------------------------- # 03/07/15 davej@codemonkey.org.uk 1.1046.518.2 # [CPUFREQ] Sanity checks for voltage scaling in longhaul driver. # -------------------------------------------- # 03/07/15 paulus@samba.org 1.1046.519.1 # Merge samba.org:/home/paulus/kernel/linux-2.5 # into samba.org:/home/paulus/kernel/for-linus-ppc # -------------------------------------------- # 03/07/14 davidm@tiger.hpl.hp.com 1.1046.1.338 # Undo (most of) the ia64-specific changes to pci_irq.c. # iosapic_parse_prt() is the right place to do those. # -------------------------------------------- # diff -Nru a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c --- a/drivers/acpi/pci_irq.c Mon Sep 22 13:01:53 2003 +++ b/drivers/acpi/pci_irq.c Mon Sep 22 13:01:53 2003 @@ -253,8 +253,6 @@ return_VALUE(0); } - entry->irq = entry->link.index; - if (!entry->irq && entry->link.handle) { entry->irq = acpi_pci_link_get_irq(entry->link.handle, entry->link.index); if (!entry->irq) { @@ -363,11 +361,7 @@ } } -#ifdef CONFIG_IA64 - dev->irq = gsi_to_irq(irq); -#else dev->irq = irq; -#endif ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device %s using IRQ %d\n", dev->slot_name, dev->irq));